package me.zhengjie.minbearwcs.serivce.mission.storageProcessor.config;

import me.zhengjie.minbearwcs.serivce.mission.storageProcessor.locker.Floor1.DefaultStorage1FLocker;
import me.zhengjie.minbearwcs.serivce.mission.storageProcessor.locker.Floor1.Storage1FLocker;
import me.zhengjie.minbearwcs.serivce.mission.storageProcessor.locker.Floor2.DefaultStorage2FloorLocker;
import me.zhengjie.minbearwcs.serivce.mission.storageProcessor.locker.Floor2.Storage2FloorLocker;
import me.zhengjie.minbearwcs.serivce.mission.storageProcessor.locker.Floor5Or6.ShiftingStorageOr6FloorLocker;
import me.zhengjie.minbearwcs.serivce.mission.storageProcessor.locker.Floor5Or6.defaultLocker.DefalutOutboundStorage5Or6FloorLocker;
import me.zhengjie.minbearwcs.serivce.mission.storageProcessor.locker.Floor5Or6.OutboundStorage5Or6FloorLocker;
import me.zhengjie.minbearwcs.serivce.mission.storageProcessor.locker.Floor5Or6.defaultLocker.DefalutShiftingStorageOr6FloorLocker;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import me.zhengjie.minbearwcs.serivce.mission.storageProcessor.locker.Floor3Or4.DefaultStorage3Or4FloorLocker;
import me.zhengjie.minbearwcs.serivce.mission.storageProcessor.locker.Floor3Or4.Storage3Or4FloorLocker;
import me.zhengjie.minbearwcs.serivce.mission.storageProcessor.locker.Floor5Or6.defaultLocker.DefaultInboundStorage5Or6FloorLocker;
import me.zhengjie.minbearwcs.serivce.mission.storageProcessor.locker.Floor5Or6.InboundStorage5Or6FloorLocker;

@Configuration
public class StorageSelectorConfig {

//    @Bean
//    @ConditionalOnMissingBean
//    public Storage3Or4FloorBookingSelector defaultStorage3Or4Selector(){
//        return new DefaultStorage3Or4FloorBookingSelector();
//    }
//
//    @Bean
//    @ConditionalOnMissingBean
//    public Storage5Or6FloorBookingSelector defaultStorage5Or6FloorSelector(){
//        return new DefaultStorage5Or6FloorBookingSelector();
//    }

    @Bean
    @ConditionalOnMissingBean
    public Storage2FloorLocker defaultStorage2FloorLocker(){
        return new DefaultStorage2FloorLocker();
    }


    @Bean
    @ConditionalOnMissingBean
    public Storage3Or4FloorLocker defaultStorage3Or4FloorLocker(){
        return new DefaultStorage3Or4FloorLocker();
    }


    @Bean
    @ConditionalOnMissingBean
    public InboundStorage5Or6FloorLocker defaultStorage5Or6FloorLocker(){
        return new DefaultInboundStorage5Or6FloorLocker();
    }


    @Bean
    @ConditionalOnMissingBean
    public OutboundStorage5Or6FloorLocker defaultOutboundStorage5Or6FloorLocker(){
        return new DefalutOutboundStorage5Or6FloorLocker();
    }

    @Bean
    @ConditionalOnMissingBean
    public Storage1FLocker defaultStorage1FLocker(){
        return new DefaultStorage1FLocker();
    }

    @Bean
    @ConditionalOnMissingBean
    public ShiftingStorageOr6FloorLocker defaultShiftingStorageOr6FloorLocker(){
        return new DefalutShiftingStorageOr6FloorLocker();
    }

}
